1
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
1. Введение
Данный программный продукт предназначен для контроля
качества усвоения студентами основных определений, принципов и
особенностей по теме Криптография и безопасность сетей. Это
достигается путем предварительного чтения электронной версии
конспекта, усвоения основных положений изучаемого материала,
терминологии и прохождением теста. Разработанный программный
продукт может применяться в учебных заведениях, осуществляющих
подготовку специалистов по соответствующим отраслям народного
хозяйства или на курсах повышения квалификации.
2. Основание для разработки
лист утверждения тем проектных работ, подписанный научным
руководителем: доцентом кафедры «Информатика» Гуриковым С.Р.;
наименование разработки −.
3. Назначение разработки
Разрабатываемый программный продукт предназначен для изучения
и, в последующем, контроля качества усвоения студентами основных
определений, принципов и методов, используемых в теме
криптографии и защиты сетей.
4. Требования к программе или программному изделию
4.1. Требования к функциональным характеристикам
обеспечить конспект учебного пособия (от 25 до 30 страниц);
разработать необходимые функции для работы программы;
обеспечить защиту файла от внешних воздействий к нему;
Программная разработка должна быть написана в четком соответствии
с материалами занятий по дисциплинам «Проектный практикум»,
«Технологии программирования». Структуру программного кода тестовых
вопросов изменять нельзя, она должна соответствовать материалам занятий.
2
Студенту, за счет часов самостоятельной работы, разрешается
заниматься дополнительным поиском информации с целью расширения
возможностей программной разработки, с последующим описанием их в
пояснительной записке.
4.2. Требования к надежности
Разрабатываемое программное обеспечение должно быть
спроектировано таким образом, чтобы обеспечить защиту и надежную
работу при наличии ошибок во входных данных и/или от некорректных
действий пользователя. Предполагается, что программный продукт должен
быть спроектирован таким образом, чтобы внутренняя или внешняя
(некритическая для системы) ошибка не приводила к аварийной остановке.
4.3. Условия эксплуатации
Климатические условия эксплуатации, при которых должны обеспечиваться
заданные характеристики, должны удовлетворять требованиям,
предъявляемым к техническим средствам в части условий их эксплуатации.
Программа будет работать в температурном режиме от + 5 до + 35 °C при
относительной влажности 90 % и атмосферном давлении 462 мм.рт.ст.,
поскольку такие условия приблизительно соответствуют условиям
эксплуатации современных компьютеров непромышленного исполнения.
4.4Требования к составу и параметрам технических средств
Для корректной работы программного продукта вычислительная
система должна обладать следующими характеристиками:
− процессор с тактовой частотой не ниже 1 ГГц или SoC;
оперативная память объемом не менее 1 ГБ для 32-разрядной
системы или 2 ГБ для 64-разрядной системы ;
периферийные устройства: клавиатура, мышь;
3
− монитор с разрешающей способностью не ниже 800 x 600;
жесткий диск объемом не менее 16 ГБ для 32-разрядной ОС или 20
ГБ для 64-разрядной ОС;
желательно наличие принтера для печати отчета итогов работы
программы.
Для корректной работы вычислительной среды необходимо наличие
системного программного обеспечения, основным элементом которого
является операционная система. В связи с этим, целесообразнее использовать
операционную систему семейства Windows не ниже Windows 10.
4.5 Требования к информационной и программной совместимости
Требования к информационным структурам (файлов) на входе и выходе не
предъявляются. Исходные коды программы должны быть реализованы на
языке Visual С++. В качестве интегрированной среды разработки программы
должна быть использована среда MS Visual Studio. Системные программные
средства, используемые программой, должны быть представлены
лицензионной локализованной версией операционной системы.
4.6 Требования к маркировке и упаковке
Программа поставляется в виде программного изделия - внешнем
флешносителе.
Программное изделие должно иметь маркировку с обозначением
товарного знака компании-разработчика, типа (наименования), номера
версии, порядкового номера, даты изготовления и номера сертификата
соответствия Госстандарта России (если таковой имеется). Маркировка
должна быть нанесена на программное изделие в виде наклейки,
выполненной полиграфическим способом с учетом требований ГОСТ 9181-
74.
4
Упаковка флеш-носителя - пакет для хранения.
Упаковка программного изделия должна проводиться в закрытых
вентилируемых помещениях при температуре от плюс 15 до плюс 40 °С и
относительной влажности не более 80 % при отсутствии агрессивных
примесей в окружающей среде.
Подготовленные к упаковке программные изделия укладывают в тару,
представляющую собой коробки из картона. Для заполнения свободного
пространства в упаковочную тару укладываются прокладки из
гофрированного картона или пенопласта. На верхний слой прокладочного
материала укладывается товаросопроводительная документация -
упаковочный лист и ведомость упаковки.
4.7 Требования к транспортированию и хранению
транспортировка разрабатываемого программного продукта должна
осуществляться студентом в назначенный срок по указанию преподавателя,
принимающего результаты работы по проекту;
ответственным за хранение программного продукта является студент;
5. Требования к программной документации
Предварительный перечень программной документации:
пояснительная записка к разработанному проекту, оформленная в
соответствии с ГОСТ 7.32-2017;
разделы пояснительной записки должны соответствовать материалам
занятий.
6. Технико-экономические показатели
В данной работе не рассчитываются.
7. Стадии и этапы разработки
5
Стадии и этапы разработки определены в план-графике.
8. Порядок контроля и приемки
контроль и приемка программного продукта осуществляется в
течение семестра в соответствии с план-графиком.
ВВЕДЕНИЕ
В свете современных изменений в информационной технологии и
быстрого развития компьютерных средств, тема криптографии и
безопасности сетей стала одной из наиболее актуальных и важных областей
исследований. С каждым днем в сети появляется все больше ценной
информации, которую необходимо защищать от несанкционированного
доступа и злоумышленных атак. В этом контексте, разработка и
усовершенствование методов криптографии и систем безопасности
приобретают особую актуальность.
Объектом исследования, проведенного в рамках данной работы,
являются методы и технологии, используемые для обеспечения безопасности
информации и сетей в современном информационном окружении.
Предметом исследования, является криптография и безопасность
сетей.
Целью исследований в области криптографии и безопасности сетей
является обеспечение надежной защиты информации от
несанкционированного доступа, а также обеспечение конфиденциальности,
целостности и доступности данных. Для достижения этой цели
исследователи сталкиваются с рядом важных задач и вызовов:
1. Анализ существующих методов криптографии: Исследователи
анализируют существующие методы шифрования и протоколы
безопасности для выявления их преимуществ и недостатков. Это
6
включает как классические методы, такие как симметричное и
асимметричное шифрование, так и современные технологии, такие
как квантовая криптография.
2. Разработка новых криптографических алгоритмов: В свете быстро
развивающихся вычислительных ресурсов, исследователи работают
над созданием новых алгоритмов, способных выдержать
современные вычислительные атаки и обеспечивать надежную
защиту данных.
3. Анализ безопасности сетей: Эффективная защита информации
также связана с обеспечением безопасности сетей. Исследователи
анализируют сетевые протоколы и механизмы обнаружения и
предотвращения атак, такие как фаерволы и системы обнаружения
вторжений.
4. Улучшение управления ключами: Ключи играют решающую роль в
криптографии, исследователи ищут способы улучшить управление
ключами, включая их генерацию, распределение и уничтожение.
5. Анализ социальных и юридических аспектов: Кроме технических
аспектов, исследователи также рассматривают социальные и
юридические вопросы, связанные с криптографией и безопасностью
сетей, такие как вопросы приватности и правовой статус
шифрования.
6. Эффективные методы обучения и обеспечения безопасности:
Исследователи разрабатывают обучающие программы и методы для
повышения уровня осведомленности и обучения пользователей в
области кибербезопасности.
Методы исследования. В процессе исследований в области
криптографии и безопасности сетей используются теоретические методы.
Теоретическая база включает в себя знания из области математики, теории
7
информации, теории сложности вычислений и труд Б.А. Фроузана.
Эксперименты могут включать в себя создание и тестирование новых
криптографических алгоритмов, а также анализ реальных сценариев атак и
защиты.
Таким образом, исследования в области криптографии и безопасности сетей
играют важную роль в обеспечении защиты ценной информации и
обеспечении безопасности в современном информационном мире.
8
1.1 Основы криптографии.
Цели поддержки безопасности:
Рис.1.Систематизация целей поддержки информации
Конфиденциальность
Конфиденциальность представляет собой наиболее общий аспект
информационной безопасности. Она означает необходимость защиты
конфиденциальной информации от несанкционированного доступа.
Организации должны предпринимать меры для защиты конфиденциальной
информации от возможных атак, которые могут нарушить ее
конфиденциальность.
Целостность
Целостность информации связана с обеспечением ее
неприкосновенности. Это означает, что данные должны оставаться
неизменными и не подвергаться несанкционированным модификациям.
Организации должны защищать информацию от возможных атак,
направленных на изменение данных с целью искажения их целостности.
Готовность
Готовность информации подразумевает, что данные могут постоянно
изменяться и должны оставаться доступными для разрешенных объектов.
9
Неготовность информации представляет серьезную угрозу для организации,
как и нарушение конфиденциальности и целостности. В данном контексте
готовность информации означает, что она должна быть доступной в нужное
время и для правильных субъектов, и требует соответствующих мер по
обеспечению доступности данных и их защите от атак и сбоев.
Атаки
Наши цели информационной безопасности — конфиденциальность,
целостность и готовность данных могут подвергаться угрозам в виде атак.
Атаки могут быть направлены на нарушение информационной безопасности
с разными целями. Мы можем классифицировать атаки на три основные
группы, связанные с целями нарушения информационной безопасности.
Позже мы разделим их на две широкие категории, основанные на их
эффективности воздействия на систему.
10
Рис.2.Систематизация атак и их соотношение с целями поддержки
информационной безопасности.
Атаки на конфиденциальность
Существуют два типа атак, которые могут угрожать
конфиденциальности информации: вмешательство и наблюдение за
трафиком и его анализом.
Вмешательство
Это неправомерный доступ или перехват данных, например, при передаче
информации через Интернет. Для предотвращения вмешательства данные
могут быть зашифрованы.
Наблюдение за трафиком и его анализ
Анализ сетевого трафика может раскрывать информацию о взаимодействии
между участниками сети, поэтому важно защищать данные от наблюдения и
анализа трафика. Мы также рассмотрим методы обеспечения
конфиденциальности в этом контексте.
Атаки на целостность
Целостность данных может быть подвергнута нескольким видам атак, таким
как модификация, имитация, повторная передача и отказ в обслуживании.
Модификация
Это изменение информации с определенной выгодой для атакующего после
получения доступа к ней. Например, клиент отправляет банку запрос на
выполнение определенной операции. Атакующий прерывает сообщение и
изменяет тип операции в свою пользу. Иногда атакующий может просто
удалить или задержать сообщение, чтобы повредить системе или извлечь
выгоду из задержки операции.
Имитация источника
11
Имитация источника (spoofing) заключается в том, что атакующий подменяет
легитимного пользователя, имеющего право на доступ к данным или
ресурсам, и выдает себя за него. Это может быть сделано с целью получения
доступа или проведения атаки в обход системы аутентификации.
Повторная передача информации
Еще одним типом атаки является повторная передача информации (атака
воспроизведения). Атакующий получает копию сообщения, передаваемого
пользователем, и повторяет его с целью сбить процесс или попытаться его
повторить. Например, человек отправляет запрос в банк для оплаты работы
своего сотрудника. Атакующий перехватывает сообщение и повторно
передает его, чтобы получить оплату за работу от этого банка снова
(повторно).
Отказ в обслуживании
Этот тип атаки отличается от других тем, что действие может быть
выполнено одной из двух сторон связи: отправителем или получателем.
Отправитель сообщения может отрицать факт передачи. Другой вариант -
получатель сообщения может отказаться признать его доставку.
Атака, угрожающая готовности
Рассмотрим один тип атаки, угрожающей готовности:
Отказ в обслуживании
Отказ в обслуживании (DoS - Denial of Service) - это общее название атак,
которые могут замедлить или полностью прервать работу системы. Для
достижения этой цели могут использоваться различные стратегии.
Атакующий может отправлять фиктивные запросы серверу в таком объеме,
что это приведет к перегрузке сервера и его отказу от обработки. Также
атакующий может прерывать и удалять ответы сервера для клиента, создавая
12
впечатление, что сервер не отвечает. Может быть прерывание запросов от
клиентов, заставляя их отправлять запросы многократно и создавая нагрузку
на сервер.
Пассивные и активные атаки могут быть разделены на две
группы: пассивные и активные. Таблица 1 показывает отличия между этими
классификациями.
Пассивные нарушения
При пассивных нарушениях основная цель атакующего заключается в
получении информации. Это означает, что атака не изменяет данные и не
повреждает систему. Система продолжает работать нормально, но атака
может угрожать конфиденциальности, так как раскрытие информации может
нанести вред получателю или приемнику сообщения. Атаки, которые
угрожают конфиденциальности, такие как вмешательство и наблюдение за
трафиком вместе с его анализом, являются пассивными. Открытие
информации может повредить получателю или приемнику сообщения, но не
нарушает работу системы. Из-за этой особенности такие атаки часто трудно
обнаружить.
Таблица 1.Классификация пассивных и активных атак.
13
Активные атаки изменяют данные или наносят вред системе. Эти атаки
обычно легче обнаруживать, чем пассивные.
Методы информационной безопасности
Криптография и стеганография - методы обеспечения информационной
безопасности. Криптография применяется для шифрования данных с целью
защиты их от несанкционированного доступа, обеспечивая
конфиденциальность. Стеганография, с другой стороны, используется для
скрытой передачи информации, таким образом, что сам факт наличия этой
информации остается незамеченным.
Их схожесть заключается в обеспечении безопасности данных, но
методы различаются. Криптография изменяет сами данные, делая их
непонятными для посторонних лиц, в то время как стеганография встраивает
информацию в другие носители так, чтобы она не привлекала внимания.
Эти методы играют ключевую роль в защите информации от утечки и
несанкционированного доступа, что особенно важно в современном
цифровом мире.
Вывод
Для обеспечения информационной безопасности выделяют три
основные цели: конфиденциальность, целостность и готовность.
Конфиденциальность информации подвергается риску от двух типов
атак: вмешательства (включая мониторинг трафика и его анализ) и
наблюдения за источником. Три других типа атак могут угрожать
целостности информации: модификация, подделка и пассивная
передача информации. Атака "отказ в обслуживании запроса" угрожает
готовности информации.
Различные организации, такие как ITU-T или Internet Forum,
определили несколько служб безопасности для обеспечения
14
информационной безопасности и защиты от атак. В этой лекции были
рассмотрены пять общих служб безопасности: конфиденциальность,
целостность, аутентификация, доступ и доступность.ITU-T также
рекомендует несколько механизмов обеспечения безопасности. В
лекции было рассмотрено семь из этих механизмов: шифрование,
целостность данных, цифровая подпись, установление прав доступа,
заполнение трафика, управление маршрутизацией, доверенность и
управление доступом.
Существует два метода, которые могут реализовать некоторые или все
эти механизмы. Криптография включает в себя шифрование
сообщений или создание хеш-сумм сообщений. Стеганография, или
"скрытое сообщение", означает, что сообщение скрыто и встраивается
в другую информацию.
1.2 Высшая математика в криптографии
Арифметика целых чисел
В арифметике целых чисел используются операции и множество целых
чисел для выполнения различных действий, включая сравнение чисел по
модулю.
Множество целых чисел
Множество целых чисел, обозначаемых как Z, включает в себя все целые
числа (без дробей) от минус бесконечности до плюс бесконечности и
обозначается следующим образом:
Z = {..., -2, -1, 0, 1, 2, ...}
Бинарные операции
15
В криптографии используются три базовые бинарные операции в
сочетании с множеством целых чисел. Бинарные операции требуют два входа
и имеют один выход. Для целых чисел существуют три основные бинарные
операции: сложение, вычитание и умножение.
Каждая из этих операций принимает два входа (a и b) и выдаёт
результат операции (c), как показано на рисунке 3. Обратите внимание, что
деление не включено в эту категорию операций, так как мы скоро увидим,
что для этой операции требуется два выхода, а не один.
Рис.3. Три бинарных операций для множества целых чисел.
Деление целых чисел.
В арифметике целых чисел, если мы разделим a на n, мы можем
получить q и r. Различие между этими четырьмя целыми числами можно
выразить следующим образом:
a = q * n + r
В этом равенстве a обозначает делимое, q - частное, n - делитель, и r -
остаток. Обратите внимание, что это не операция, так как результат деления a
на n - это два целых числа q и r. Мы будем называть это уравнение делением.
Ограничения
При использовании уравнения деления в криптографии существуют
два ограничения. Первое требование: делитель должен быть положительным
16
целым числом (n > 0). Второе требование: остаток должен быть
неотрицательным целым числом (r > 0). Рисунок 4 иллюстрирует эти
ограничения с двумя соответствующими указаниями.
Рис.4. Алгоритм деления целых чисел
Теория делимости
Теперь кратко обсудим теорию делимости, с которой мы часто
сталкиваемся в криптографии. Если a не равно нулю, а r = 0, то в уравнении
деления мы имеем a = q * n. Мы тогда говорим, что a делится на n (или n
делитель a). Мы также можем сказать, что a делится без остатка на n. Когда
мы не интересуемся значением q, мы можем записать вышеупомянутое
отношение как a | n. Если остаток не является нулевым, то n не делится, и мы
можем записать отношение как a | n.
Наибольший общий делитель
Однако целое число, часто необходимое в криптографии, — наибольший
общий делитель двух положительных целых чисел. Два положительных
целых числа могут иметь много общих делителей, но только один
наибольший общий делитель.
Например, у чисел 12 и 140 есть общие делители: 1, 2 и 4. Однако
наибольший общий делитель составляет 4.(см. рис. 5)
17
Рис.5. Общие делители 140 и 12.
Алгоритм Евклида
Алгоритм Евклида позволяет находить наибольший общий делитель
(НОД) двух положительных целых чисел. Он основан на двух ключевых
фактах:
1. НОД(a, 0) = a: Если второе число равно 0, то НОД первого числа и 0
равен первому числу.
2. НОД(a, b) = НОД(b, r), где r — остаток от деления a на b: Если второе
число не равно 0, то НОД(a, b) равен НОД(b, r), где r - это остаток от
деления числа a на число b.
Пример:
Давайте найдем НОД(36, 10) с помощью алгоритма Евклида:
1. Начнем с первой итерации: НОД(36, 10) = НОД(10, 6), так как 36 / 10 =
3 с остатком 6.
2. Переходим ко второй итерации: НОД(10, 6) = НОД(6, 4), так как 10 / 6
= 1 с остатком 4.
3. Последняя итерация: НОД(6, 4) = НОД(4, 2), так как 6 / 4 = 1 с остатком
2.
4. Еще одна итерация: НОД(4, 2) = НОД(2, 0), так как 4 / 2 = 2 с остатком
0.
18
5. Теперь мы достигли случая, когда второе число равно 0, и согласно
первому факту, НОД(2, 0) равен 2.
Итак, НОД(36, 10) = 2.
Алгоритм Евклида позволяет эффективно находить НОД для больших чисел
и имеет широкий спектр применений в математике и криптографии.
Модульная арифметика
Уравнение деления (a = q * n + r), рассмотренное в предыдущей секции,
имеет два входа (a и n) и два выхода (q и r). В модульной арифметике нас
интересует только один из выходов - остаток r. Мы не заботимся о частном q.
Другими словами, при делении a на n нас интересует только значение остатка
r. Это позволяет нам представить вышеупомянутое уравнение как бинарный
оператор с двумя входами a и n и одним выходом r.
Рис.6. Соотношение уравнения деления и оператора по модулю.
Операции по модулю
Вышеупомянутый бинарный оператор, называемый оператором по
модулю и обозначаемый как "mod," работает следующим образом: оператор
принимает целое число (a) из множества Z и положительный модуль (n).
Затем оператор вычисляет неотрицательный остаток (r).
19
Мы можем записать это как a mod n = r.
Система вычетов: Zn
Результат операции по модулю n всегда является целым числом в
диапазоне от 0 до n-1. Другими словами, результат a mod n всегда является
неотрицательным целым числом, которое меньше, чем n. Мы можем
представить множество результатов операции по модулю n как систему из
меньших вычетов по модулю n, обозначаемую как Zn. Однако следует
помнить, что хотя существует только одно множество целых чисел (Z), мы
имеем бесконечное количество множеств вычетов (Zn), одно для каждого
значения n.
Класс вычетов
Множество вычетов [a], обозначаемое как [a]n, представляет собой
множество целых чисел, эквивалентных по модулю n. Другими словами, это
множество всех целых чисел x, для которых x = a (mod n). На пример, если
n= 5, мы имеем множество из пяти элементов [0], [1], [2], [3] и [4],таких, как
это показано ниже:
[0] = {....., 15, 10, 5, 0, 5, 10, 15, ....}
[1] = {...., 14, 9, 4, 1, 6 , 11, 16,.....}
[2] = {..., 13, 8, 3, 2, 7, 12, 17,...}
[3] = {...., 12, 7, 2, 3, 8, 13, 18,...}
[4] = {....., 11, 6, 1, 4, 9, 14, 19,...}
20
Рис.7. Система классов вычета
Инверсии
Аддитивная инверсия в модульной арифметике, обозначаемая как (-
a)mod n, представляет собой операцию, при которой находится число,
обратное данному числу a по отношению к модулю n. Другими словами, это
число b такое, что a + b ≡ 0 (mod n).
Например, если мы работаем в модульной арифметике по модулю n = 7, и у
нас есть число a = 3, то его аддитивная инверсия (-3)mod 7 равна 4, потому
что 3 + 4 ≡ 0 (mod 7).
В модульной арифметике каждое целое число имеет аддитивную инверсию.
Сумма целого числа и его аддитивной инверсии сравнима с 0 по
модулю n.
Матрицы
В криптографии мы часто работаем с матрицами, хотя эта тема
принадлежит специальному разделу алгебры, который называется линейной
алгеброй. Она имеет особое значение в криптографии и может потребовать
краткого обзора матриц для подготовки к изучению этой области.
Операции и уравнения
21
В линейной алгебре матрицы сравниваются с использованием операции
равенства. Две матрицы считаются равными, если они имеют одинаковое
количество строк и столбцов, и их соответствующие элементы равны между
собой. Математически это выражается как A = B, где A и B - две матрицы, и
𝑎𝑖𝑗и 𝑏𝑖𝑗- их элементы в соответствующих позициях. Таким образом, матрицы
A и B считаются равными, если для всех i и j выполняется равенство 𝑎𝑖𝑗= 𝑏𝑖𝑗.
Рис.8. Операции сложения и вычитания матриц
Умножение
Две матрицы различного размера могут быть перемножены, если число
столбцов первой матрицы совпадает с числом строк второй матрицы. Если
матрица A имеет размер l x m, а матрица B имеет размер m x p, то
результатом будет матрица C размером l x p. Элементы матрицы C
вычисляются как сумма произведений соответствующих элементов строк из
матрицы A и столбцов из матрицы B. Это определение умножения матриц
используется в различных областях математики и имеет множество
приложений, включая криптографию и обработку данных.
Детерминант
22
Детерминант (или определитель) квадратной матрицы A размера m x
m, обозначаемый как det(A).Детерминант определяется только для
квадратных матриц.
Матрицы вычетов
Криптография использует матрицы вычетов, которые могут содержать
элементы из Zn (классы вычетов по модулю n). Операции над матрицами
вычетов выполняются так же, как операции над матрицами целых чисел, за
исключением того, что операции выполняются в модульной арифметике.
Линейное сравнение
Криптография часто включает в себя решение уравнений или системы
уравнений с одной или более переменными с коэффициентами в поле Zn.
Этот раздел показывает, как решать уравнения с одной неизвестной, когда
степень переменной равна 1 (линейное уравнение).
Линейные уравнения с одним неизвестным, содержащие
сравнения
Давайте посмотрим, как решаются уравнения с одной неизвестной,
содержащие уравнения вида ax ≡ b (mod n). Уравнение этого типа может не
иметь ни одного решения или иметь ограниченное число решений.
Предположим, что НОД (a, n) = d. Если d не делит b, то решения не
существует. Если d делит b, то у нас есть d решений. Чтобы найти эти
решения, мы используем следующий алгоритм:
Сократите уравнение, разделив обе стороны на d.
Умножьте обе стороны сокращенного уравнения на
мультипликативную инверсию, чтобы найти конкретное решение x₀.
Общие решения будут выглядеть как x = x₀ + k * (n / d) для k = 0, 1, ...,
(d - 1).
23
Таким образом, у нас будет d решений для данного уравнения.
Система линейных уравнений, содержащих сравнения
Мы можем решить систему линейных уравнений с одним и тем же
модулем, если матрица, сформированная из коэффициентов системы
уравнений, имеет обратную матрицу. Для решения такой системы
формируются три матрицы:
Первая - квадратная матрица - формируется из коэффициентов
уравнения.
Вторая - матрица-столбец - составляется из переменных.
Третья - матрица-столбец в правой стороне оператора сравнения -
состоит из значений bn.
Мы можем представить это уравнение как произведение матриц. Если обе
стороны сравнения умножить на мультипликативную инверсию первой
матрицы, мы получим решение системы уравнений.
Вывод
Высшая математика играет критическую роль в криптографии,
обеспечивая теоретическую основу и инструменты для разработки и анализа
криптографических систем. Вот некоторые ключевые аспекты, которые
демонстрируют роль математики в криптографии:
Теория чисел: Теория чисел является одной из фундаментальных
областей математики, используемых в криптографии. Понимание
простых чисел, делимости, арифметики остатков и модульной
арифметики существенно для разработки методов шифрования и
цифровой подписи.
24
Алгебраическая геометрия: Алгебраическая геометрия используется
в криптографии, особенно в сферах современной криптографии, таких
как эллиптическая криптография. Этот математический аппарат
позволяет разрабатывать криптосистемы с высокой степенью
безопасности.
Линейная алгебра и теория матриц: Матричные операции и
линейные преобразования широко применяются в симметричных и
асимметричных криптосистемах. Линейная алгебра также играет
важную роль в анализе и атаках на криптографические протоколы.
Теория информации: Теория информации и энтропия используются
для измерения стойкости криптографических систем и анализа их
эффективности.
Теория вероятности и комбинаторика: Они применяются для оценки
вероятности успешной атаки на криптографические системы и
разработки случайных чисел, необходимых для генерации ключей.
Дискретная математика: Графы, комбинаторика и другие концепции
дискретной математики используются в различных аспектах
криптографии, включая разработку хэширования и аутентификации.
Теория алгоритмов: Разработка криптографических алгоритмов
требует глубокого понимания теории алгоритмов и их сложности.
Математическая логика: Она используется для формальной
спецификации и верификации протоколов и систем криптографии.
Итак, высшая математика предоставляет криптографам не только
инструменты для создания надежных систем шифрования и аутентификации,
но и методологию для анализа и оценки их безопасности. Математика
является основой, на которой строится большинство современных
25
криптографических методов, обеспечивая конфиденциальность, целостность
и аутентичность данных в сетях и информационных системах.
26
1.3. Использование криптографии для создания безопасных сетей
Безопасность на прикладном уровне : PGP И S/MIME
Электронная почта
Сначала обсудим электронную почту (e-MAIL) как систему.
Архитектура E-MAIL
Рисунок 9 представляет наиболее общий сценарий одностороннего
почтового обмена. Предположим, что Алиса работает в организации,
обслуживаемой почтовым сервером. Каждый служащий связан с почтовым
сервером через локальную сеть связи (LAN). Или, альтернативно, Алиса
может быть связана с почтовым сервером провайдера услуг интернет-почты
(ISP) через региональную сеть связи (телефонные линии или кабель). Боб
находится в одной из вышеупомянутых ситуаций. Администратор почтового
сервера на стороне Алисы создает систему организации очереди, которая
передает сообщения электронной почты в Интернет одно за другим.
Администратор почтового сервера на стороне Боба создает почтовый ящик
для каждого пользователя, подключенного к серверу. Почта исправлена.
Когда Алиса должна передать сообщение Бобу, она вызывает агента
пользователя (UA) для подготовки сообщения. Затем она использует другую
программу - почтовый агент (MTA) - чтобы передать сообщение серверу
почты на ее стороне. Обратите внимание, что MTA - это программа "клиент-
сервер" с клиентом, установленным на компьютере Алисы, и сервером,
установленным на почтовом сервере.
27
Рис.9. Архитектура e-MAIL
Сообщение, полученное на сервере почты на стороне Алисы, поступает в
очередь со всеми другими сообщениями; затем создается для каждого
получателя соответствующий пункт назначения. В случае Алисы ее
сообщение поступает на сервер почты Боба. Клиент-сервер MTA отвечает за
почтовую передачу между этими двумя серверами. Когда сообщение
достигает сервера почты пункта назначения, оно попадает в почтовый ящик
Боба в виде специального файла, который сохраняет сообщение, пока оно не
будет извлечено Бобом.
Когда Боб должен извлечь свои сообщения (файлы), включая сообщение,
передаваемое Алисой, он вызывает другую программу, которую мы
называем агентом доступа к сообщениям (MAA - Message Access Agent).
MAA также разработана как программа "клиент-сервер", установленная как
на компьютере Боба, так и на сервере почты. Существует несколько важных
положений в архитектуре почтовой системы:
Передаваемая электронная почта от Алисы к Бобу кэшируется в
памяти. Алиса может передать электронную почту сегодня, а Боб,
будучи занятым, может проверить свою электронную почту через три
дня. Все это время электронная почта сохраняется в почтовом ящике
Боба, пока он не извлечет ее.
28
Основное взаимодействие между Алисой и Бобом происходит через
две прикладные программы: клиент MTA на компьютере Алисы и
MAA на компьютере Боба.
Алиса и Боб не могут непосредственно в данный момент связаться с
MTA-клиентом, используемым на стороне получателя, и MTA-
сервером, используемым на стороне отправителя. Это требует от MTA-
сервера функционировать все время, так как Боб, вероятно, выключит
свой компьютер, когда не будет в нем нужды.
Почтовая безопасность
Передача электронной почты - это односторонняя активность. Её
характер отличается от того, что мы рассмотрим в следующих двух лекциях
о технологиях, таких как IPSec или SSL. В случае IPSec или SSL мы
предполагаем, что обе стороны создают сессию между собой и обмениваются
данными в обоих направлениях. В электронной почте отсутствует прямая
сессия. Алиса и Боб не могут создать сеанс. Алиса передает сообщение Бобу,
а затем, возможно, Боб прочитает сообщение и, возможно, ответит на него в
будущем. Мы будем рассматривать безопасность однонаправленного
сообщения, так как Алиса передает сообщения Бобу, независимо от того, что
Боб делает с Алисой.
Криптографические алгоритмы
Если электронная почта - это односторонняя активность. Как могут
отправитель и получатель договориться о криптографических алгоритмах,
которые они будут использовать для почтовой безопасности, в отсутствие
сеанса и процедур настройки связи? Если нет сессии и процедур настройки
связи, как получатель может узнать, какой алгоритм
шифрования/дешифрования и хеширования выбран отправителем для
каждого сообщения?
29
Имеется одно решение для основного протокола - выбрать один
алгоритм из заданного множества для каждой криптографической операции и
заставить Алису использовать только эти алгоритмы. Это решение очень
сужает возможности и ограничивает действия двух сторон.
Лучшее решение для основного протокола - определить множество
алгоритмов для каждой операции, которые пользователь может применить в
его системе. Алиса включает наименования (или идентификаторы)
алгоритмов, которые она использовала в электронной почте. Например,
Алиса может выбрать тройное шифрование DES для
шифрования/дешифрования и MD5 для хеширования. Когда Алиса передает
сообщение Бобу, она включает соответствующие идентификаторы для
тройного DES и MD5 в свое сообщение. Боб получает сообщение и сначала
извлекает идентификаторы. Тогда он знает, какой алгоритм использовать для
дешифрования и какой - для хеширования.
Криптографическая секретность
Та же самая проблема, которая существует и для криптографических
алгоритмов, существует и для криптографических секретов (ключей). Если
нет переговоров, как эти две стороны могут установить принципы
секретности между собой? Алиса и Боб могли использовать асимметрично-
ключевые алгоритмы для установления подлинности и шифрования, которое
не требует установления симметричного ключа. Однако, как мы видели,
использование асимметрично-ключевых алгоритмов очень неэффективно для
шифрования/дешифрования длинного сообщения.
Большинство почтовых протоколов безопасности сегодня требует,
чтобы шифрование/дешифрование было выполнено с использованием
алгоритма с симметричными ключами и одноразовым ключом шифрования,
передаваемым с сообщением. Алиса может создать ключ шифрования и
передать его с сообщением, которое она передает Бобу. Чтобы защитить
30
ключ шифрования от перехвата Евой, ключ шифрования зашифрован
открытым ключом Боба. Другими словами, сам ключ шифрования
зашифрован.
Сертификаты
Прежде чем мы обсудим любой почтовый протокол безопасности,
нужно рассмотреть еще одну проблему: несколько очевидные алгоритмы
общего доступа к ключам, которые должны использоваться для почтовой
безопасности. Например, мы должны зашифровать ключ шифрования или
подписать сообщение. Чтобы зашифровать ключ шифрования, Алисе нужен
открытый ключ Боба; для подписи и верификации сообщения, Бобу нужен
открытый ключ Алисы. Так что для того, чтобы послать маленькое
защищенное и конфиденциальное сообщение, нам нужны два открытых
ключа. Как Алиса может быть уверена в открытом ключе Боба, и как Боб
может быть уверен в открытом ключе Алисы? Каждый почтовый протокол
безопасности имеет различные методы сертификации.
PGP
Первый протокол, который мы рассмотрим в этой лекции, называется
PGP (Pretty Good Privacy). PGP был создан Филом Циммерманом (Phil
Zimmermann) с целью обеспечения конфиденциальности, целостности и
установления подлинности электронной почты. PGP может использоваться,
чтобы создать безопасное почтовое сообщение или надежно сохранить файл
для будущего использования.
Сценарии
Сначала мы рассмотрим общую идею PGP, двигаясь от простого
сценария к сложному. Мы будем использовать термин "Данные", чтобы
указать на сообщение или файл для обработки.
Открытый текст
31
Самый простой сценарий — это передать почтовое сообщение (или
файл) в исходном тексте, как показано на рисунке 10.В этом сценарии нет
сохранения целостности сообщения или конфиденциальности. Алиса
(передатчик) составляет сообщение и передает его Бобу (получателю).
Сообщение сохраняется в почтовом ящике Боба, пока не будет извлечено им.
Рис.9. Сообщение с русским текстом
Целостность сообщения
Вероятно, следующее усовершенствование должно позволить Алисе
подписывать сообщение. Алиса создает дайджест сообщения и подписывает
его своим секретным ключом. Когда Боб получает сообщение, он проверяет
его, используя открытый ключ Алисы. Для этого сценария необходимы два
ключа. Алиса должна использовать свой секретный ключ; Боб должен знать
открытый ключ Алисы. Рисунок 11 показывает ситуацию.
Рис.11. Сообщение с подтверждением подлинности передатчика
Сжатие
32
Дальнейшее усовершенствование позволяет сжимать сообщение и
дайджест, чтобы сделать пакет более компактным. Это усовершенствование
не имеет никаких преимуществ с точки зрения безопасности, но существенно
уменьшает трафик. Рисунок 12 показывает новый сценарий.
Конфиденциальность с одноразовым ключом сеанса
Как мы уже говорили ранее, конфиденциальность в почтовой системе
может быть достигнута за счет применения обычного шифрования
одноразовым ключом сеанса. Алиса может создать ключ сеанса, используя
ключ сессии для
Рис.12. Сообщение со сжатым текстом
шифрования сообщения и дайджеста и передать ключ не непосредственно с
сообщением. Однако для защиты ключа сеанса Алиса зашифровала его
открытым ключом Боба. Рисунок 13 показывает ситуацию, когда Боб
получает пакет, сначала расшифровывает ключ, используя свой секретный
ключ, чтобы извлечь этот совместный ключ сессии. Затем он использует
ключ сеанса, чтобы расшифровать остальную часть сообщения. После
расшифрования (де компрессии) оставшейся части сообщения Боб создает
дайджест сообщения и проверяет, равен ли он дайджесту, передаваемому
Алисой. Если дайджесты равны, то сообщение подлинное.
33
Рис.13. Конфиденциальное сообщение
Кольца ключей
Во всех предыдущих сценариях мы предполагали, что Алиса должна
передать сообщение только Бобу. Однако это не единственный вариант
передачи. Возможно, Алиса должна передать сообщения многим людям, и ей
нужны ключи к каждому человеку, которому Алиса должна передать или от
которого может получить сообщение. В этом случае Алиса нуждается в
кольце открытых ключей, включая ключи (или ключ), принадлежащие
каждому человеку, с которым Алиса должна взаимодействовать.
Разработчики PGP определили кольцо частных/открытых ключей. Алиса
может изменить пару ключей из времени во времени. В другом случае Алиса,
возможно, желает, чтобы ее ключи соответствовали различным группам
людей (друзья, коллеги и так далее). Поэтому каждый пользователь должен
иметь два множества колец: кольцо частных/открытых ключей и кольцо
открытых ключей.
Алиса, например, имеет несколько пар частных/открытых ключей,
принадлежащих ей, и открытые ключи, принадлежащие другим людям.
34
Обратите внимание, что каждый может иметь более одной пары ключей.
Могут возникнуть два случая:
1. Алиса должна передать сообщение другому человеку в сообществе.
Она использует свой секретный ключ, чтобы подписать дайджест. Она
использует открытый ключ приемника, чтобы зашифровать недавно
созданный ключ сеанса. Она шифрует сообщение и подписанный
дайджест с созданным ключом сеанса.
2. Алиса получает сообщение от другого человека, состоящего в этом
сообществе. Она использует свой секретный ключ, чтобы
расшифровать ключ сеанса. Она использует свой ключ сеанса, чтобы
расшифровать сообщение и дайджест.
PGP-алгоритмы
В PGP используются следующие алгоритмы.
Алгоритмы открытого ключа. Алгоритмы открытого ключа, которые
применяются, чтобы подписать дайджесты или зашифровать сообщения,
перечислены в таблице 13.
Рис.13. Кольца ключей в PGP
35
Таблица 2. Алгоритмы открытого ключа
Таблица 3. Алгоритмы с симметричными ключами
Таблица 4. Хэш-алгоритмы
36
Таблица 5. Методы сжатия
MIME
Электронная почта имеет определенную структуру. Однако за эту
структуру приходится платить. Почта может передавать сообщения только в
формате ASCII на 7 бит. Другими словами, она имеет некоторые
ограничения. Например, она не может работать с языками, которые не
поддерживают символы ASCII (такими какарабский язык, китайский,
французский, немецкий, иврит, японский, русский). Также она не может
использоваться для передачи двоичных файлов или видео- и аудио-данных.
MIME - это неполноценные протоколы, которые позволяют передавать
данные, непредставимые с помощью ASCII, по электронной почте. MIME
преобразует такие данные на стороне отправителя к данным NVT ASCII и
передает их клиенту MTA по сети Интернет. Сообщение на принимающей
стороне преобразуется снова к первоначальному виду.
Мы можем представлять все MIME как множество программных
функций, которые преобразуют данные, не передаваемые в ASCII, к данным
ASCII, и наоборот, как показано на рис. 14.
MIME определяет пять заголовков (содержания), которые можно
добавить к начальной электронной почте, чтобы определить параметры
преобразования:
Version MIME (версия);
Content Type (Содержание – тип);
37
Content Transfer Encoding (Содержание – Передача – Шифрование);
Content ID (Содержание – ID);
Content Description (Содержание – Описание)
Рис.14.MIME
S/MIME
S/MIME добавляет некоторые дополнительные типы заголовков-
содержания, что позволяет обеспечить безопасность в MIME. Все эти
дополнительные типы включают параметр "application/pkcs7-mime", в
котором "pkcs" (Public Key Cryptography Specification) определяет
"Спецификацию криптографии с открытым ключом".
S/MIME определяет криптографический синтаксис сообщения (CMS -
Cryptographic Message Syntax), который позволяет определить услуги
безопасности, такие как конфиденциальность или целостность, и добавить их
к содержанию MIME. Синтаксис в каждом случае определяет точную схему
38
кодирования каждого типа содержания. Внизу приведены типы сообщений и
различные подтипы, которые могут быть созданы из этих сообщений. Для
более детального изучения можно обратиться к [RFC3369] и [3370].
Тип содержания данных - произвольная строка. Созданный объект
называется "Данными" (Data).
Signed - Data Content Type (тип содержания - подписанные данные).
Этот тип обеспечивает только целостность данных. Он содержит любой тип
и нулевое или большее количество подписей. Кодируемый результа объект,
называемый signedData. Рисунок 14 показывает процесс создания объекта
этого типа. В процессе используются следующие шаги.
Рис.14 Содержание типа “подписанные данные”
39
Вывод
Использование криптографии для создания безопасных сетей является
фундаментальным аспектом современной информационной безопасности.
Вот основные выводы по этой теме:
Защита конфиденциальности данных:
Криптография позволяет шифровать данные, передаваемые по
сети, делая их непонятными для несанкционированных лиц. Это
обеспечивает конфиденциальность информации, что критически
важно для защиты личных данных, корпоративной информации и
государственных секретов.
Аутентификация и целостность данных:
Криптографические методы также позволяют подтверждать
аутентичность и целостность данных. Цифровые подписи и хэши
гарантируют, что данные не были поддельными или повреждеными
во время передачи.
Аутентификация и управление доступом:
Криптография помогает в реализации механизмов
аутентификации, которые позволяют удостоверить легитимность
пользователей и управлять их доступом к ресурсам сети. Это
снижает риски несанкционированного доступа.
Защита от атак и взломов:
Использование криптографии способствует защите от различных
видов сетевых атак, таких как перехват трафика, атаки посередине и
40
внедрение вредоносных программ. Шифрование и аутентификация
могут предотвратить такие атаки.
Сетевые протоколы и стандарты:
Стандартные криптографические протоколы, такие как SSL/TLS
для веб-связи или IPsec для защиты сетей, играют важную роль в
обеспечении безопасности интернет-соединений и корпоративных
сетей.
Обновление и обучение:
Безопасность сетей зависит от правильной настройки и
обновления криптографических компонентов. Системные
администраторы и специалисты по информационной безопасности
должны постоянно обучаться и следить за обновлениями
криптографических стандартов.
Угрозы и эволюция криптографии:
Важно понимать, что криптографические угрозы и атаки
постоянно развиваются. Это требует постоянного улучшения
методов и стандартов криптографии.
Использование криптографии для создания безопасных сетей является
неотъемлемой частью современной информационной безопасности. Это
позволяет защищать конфиденциальные данные, обеспечивать целостность и
аутентификацию, и минимизировать риски сетевых атак. С развитием
технологий и угроз информационной безопасности криптография
продолжает оставаться ключевым инструментом для обеспечения
безопасности сетей.